//引入mysql模块
const mysql = require('mysql')
// 创建池
const pool = mysql.createPool({
    host: 'localhost',
    user: 'root',//数据库账户
    password: 'root',//数据库密码
    port: '3306',//数据库端口
    database: 'world'// 数据库中的具体库
})

//封装一个数据库模型基类
// sql: 要执行的sql语句
// params: 给sql语句占位符进行赋值的参数 数组
module.exports = class model {//es6 语法创建一个model类 作为以后所有model的基类
    static query(sql, params) {//封装一个静态的全局方法
        return new Promise((resolve, reject) => {
            pool.getConnection((err, connection) => {
                if (err) {
                    //结束会话，释放连接
                    connection.release()
                } else {
                    connection.query(sql, params, (err, result) => {
                        if (err) {
                            reject(err)
                        }
                        else {
                            // sql语句执行成功，但影响的条数等于0，没有变化，也属于失败
                            if (result.affectedRows == 0) {
                                reject(err)
                            }
                            else {
                                resolve(result)
                            }

                        }
                    })
                    connection.release()
                }
            })
        })
    }
}